/*
* Sample rate MUST and ONLY be 16k Hz
*
* This functions does initialization of NS, AEC, AGC, VAD
*
* Input
*      - nsmode        : 0: Mild, 1: Medium , 2: Aggressive, 3: Strong
*      - aecmode       : 0: Mild, 1: Medium , 2: Aggressive, 3: Strong
*      - vadmode       : VAD Threshold, 0: low, 1: Medium , 2: high, 3: very high, 4: top
*
* Output:
*      - return value  : Initialize OK return 0; Initialize FAIL return < 0
*/
int csky_audio_init(short nsmode, short aecmode, short vadmode);


/*
* Sample rate MUST and ONLY be 16k Hz
* The input and output signals should always be 10ms per frame.
*
* This functions does process include AEC NS AGC and VAD
*
* Input
*      - data_in	   : Pointer to input data per frame
*      - data_far	   : Pointer to far end(reference) data per frame
*      - asr_flag	   : tell process this is in online ASR or not; 1 is in online ASR; 0 is not. 
*
* Output:
*      - data_out	   : Pointer to output data per frame
*	   - return value  : VAD value, 1 for voice , 0 for no voice, JUST Probability
*/
int csky_audio_process(short *data_in, short *data_out, short *data_far,short asr_flag);


/*
* This function releases the memory of AEC NS AGC and VAD.
* MUST and ONLY used when closing the system
*/
void csky_audio_free();

